/*#include<stdio.h>
int gcd(int m,int n)
{
    while(n!=0)
    {
        int tmp=m%n;
        m=n;
        n=tmp;
    }
    return m;
}
int main()
{
    int m,n,i,j;
    scanf("%d%d",&m,&n);
    int x=gcd(m,n);
    for(i=0;;i++)
    {
        int flag=0;
        for(j=0;;j++)
        {
            if(i*m+n*j==x)
            {
                flag=1;
            }
            if(i*m+n*j>x)
            break;
        }
        if(flag)
        {
        printf("%d %d",i,j-1);
        break;
        }
    }
    return 0;n
}*/
#include<stdio.h>
int gcd(int a,int b)
{
    return b==0?a:gcd(b,a%b);
}
int main()
{
    int a,b,s,t,gcd;
    while(scanf("%d%d",&a,&b)!=EOF)
    {
        gcd=exgcd(a,b,&s,&t);
        printf("%d %d\n",s,t);
    }
    return 0;
}
int exgcd(int a,int b,int *x,int *y)//扩展欧几里得算法;
{
    if(b==0)
    {
        *x=1;
        *y=0;
        return a;
    }
    int ret=exgcd(b,a%b,x,y);
    int t=*x;
    *x=*y;
    *y=t-a/b*(*y);
    return ret;
}
